package com.stylefeng.guns.modular.fileManage.dao;

import com.stylefeng.guns.common.persistence.model.ZyBrewsPicture;
import com.stylefeng.guns.common.persistence.model.ZyPicture;
import com.stylefeng.guns.common.persistence.model.ZyTeaPicture;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;


/**
 * 茶叶dao
 *
 * @author fengshuonan
 * @date 2017年2月17日20:28:58
 */
@Repository
public interface ZyTeaPictureDao {

    /**
     * 插入一条图片记录
     */
    Integer insert(ZyTeaPicture zyTeaPicture);
    /**
     * 插入一条图片记录(所有字段)
     */
    Integer insertAll(ZyTeaPicture zyTeaPicture);

    //删除
    void delete(Integer pictureId);
    //根据对应teaID跟ids删除
    void deleteIdsByteaId(@Param("teaId")Integer teaId, @Param("ids") Integer[] ids);


    //根据图片id查找某一条数据
    ZyTeaPicture selectByPictureId(Integer pictureId);

    /**
     * 根据联合主键查询记录
     */
    ZyTeaPicture selectByTwoId(@Param("teaId") Integer teaId, @Param("pictureId") Integer pictureId);

    /**
     * 查询是否已有关联关系
     * @param teaId
     * @param label
     * @param sequence
     * @return
     */
    ZyTeaPicture selectByTeaIdAndLabAndSequence(@Param("teaId") Integer teaId, @Param("label") String label, @Param("sequence") Integer sequence);

    /**
     * 根据茶叶的id查询图片
     */
    List<ZyTeaPicture> selectByTeaId(@Param("teaId") Integer teaId);

    /**
     * 根据茶叶的id和label查询关联表
     */
    List<ZyTeaPicture> selectByTeaIdAndLabel(@Param("teaId")Integer teaId, @Param("label")String label);

    /**
     * 根据联合主键删除记录
     * @param itemId 茶叶id
     */
    void deleteByPicIdAndTeaId(@Param("itemId")Integer itemId, @Param("pictureIds")Integer[] pictureIds);

    /**
     * 如果当前位置图片关联已经存在则重新关联新图片id
     * @param originalZtp
     */
    void updateByTeaIdAndLabAndSequence(ZyTeaPicture originalZtp);

    /**
     * 查询指定位置的图片
     * @param teaFileId
     * @param label
     * @param sequence
     * @return
     */
    List<ZyPicture> selectByTeaIdAndLabelAndSequence(@Param("teaFileId")Integer teaFileId, @Param("label")String label, @Param("sequence")Integer sequence);

    /**
     * 根据茶叶id删除关联记录
     * @param teaId
     */
    void deleteByTeaId(@Param("teaId") Integer teaId);
}
